import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.args.ListPosition;

import java.util.List;

public class RedisTest {
    public static void main(String[] args) {
        JedisPool jedisPool = new JedisPool("tcp://127.0.0.1:8888");
        try (Jedis jedis = jedisPool.getResource()) {

        }
    }

    //lpush 和 lpop
    public static void testLpushAndLpop(Jedis jedis) {
        jedis.lpush("list", "a", "b", "c");
        String pop = jedis.lpop("list");
        System.out.println(pop);
    }

    //rpush 和 rpop
    public static void testRpushAndRpop(Jedis jedis) {
        jedis.rpush("list", "a", "b", "c");
        String pop = jedis.rpop("list");
        System.out.println(pop);
    }

    //lrange
    public static void testLrange(Jedis jedis) {
        jedis.lpush("list", "a", "b", "c");
        List<String> list = jedis.lrange("list", 0, -1);
        System.out.println(list);
    }

    //blpop
    public static void testBlpop(Jedis jedis) {
        jedis.lpush("list", "a", "b", "c");
        while(true){
            System.out.println("开始调用bloop");
            List<String> list = jedis.blpop(0, "list");
            System.out.println(list);
        }
    }

    //brpop
    public static void testBrpop(Jedis jedis) {
        jedis.lpush("list", "a", "b", "c");
        while(true){
            System.out.println("开始调用brpop");
            List<String> list = jedis.brpop(0, "list");
            System.out.println(list);
        }
    }

    //lindex
    public static void testLindex(Jedis jedis) {
        jedis.lpush("list", "a", "b", "c");
        String index = jedis.lindex("list", 0);
        System.out.println(index);
    }

    //linsert 通过ListPosition.BEFORE 和 ListPosition.AFTER 标识插⼊位置
    public static void testLinsert(Jedis jedis) {
        jedis.lpush("list", "a", "b", "c");
        jedis.linsert("list", ListPosition.BEFORE, "a", "a1");
        List<String> list = jedis.lrange("list", 0, -1);
        System.out.println(list);
    }

    //llen
    public static void testLlen(Jedis jedis) {
        jedis.lpush("list", "a", "b", "c");
        Long len = jedis.llen("list");
        System.out.println(len);
    }
    
}
